home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / pas2c.zip / STD.H < prev    next >
Text File  |  1993-01-04  |  3KB  |  106 lines

  1. /*
  2.  
  3.         STD.H -- portable types
  4.  
  5.             - derived from Whitesmiths & Plum Hall
  6.             - for Borland Turbo C
  7.  
  8.  */
  9.  
  10. /* pseudo storage classes */
  11. #define FAST register
  12. #define GLOBAL extern
  13. #define IMPORT extern
  14. #define INTERN static
  15. #define LOCAL static
  16.  
  17. /* ansi storage classes */
  18. #define VOLATILE volatile
  19. #define CONST const
  20.  
  21. /* Turbo C specific */
  22. #define NEAR near
  23. #define FAR far
  24. #define HUGE huge
  25. #define PASCAL pascal
  26. #define INTERRUPT interrupt
  27. #define CDECL cdecl
  28. #define CS _cs
  29. #define DS _ds
  30. #define ES _es
  31. #define SS _ss
  32.  
  33. /* pseudo types */
  34. #define STEXT
  35. #ifdef STEXT
  36. typedef char TEXT;              /* character                       */
  37. #else
  38. typedef unsigned char TEXT;
  39. #endif
  40. typedef TEXT TBOOL;             /* tiny boolean                    */
  41. typedef signed char TINY;       /* -128..127                       */
  42. typedef double DOUBLE;          /* double precision floating point */
  43. typedef float FLOAT;            /* single precision floating point */
  44. typedef int ARGINT;             /* address of argument widened int */
  45. typedef int BOOL;               /* boolean                         */
  46. typedef void VOID;              /* no return result                */
  47. typedef long LONG;              /* wide signed integer, -?..?      */
  48. typedef short COUNT;            /* counting, -65536..65535         */
  49. typedef short FILEHANDLE;       /* file handle from os             */
  50. typedef short METACH;           /* any character, including eof    */
  51. typedef unsigned BYTES;         /* indexing any location           */
  52. typedef unsigned char UTINY;    /* 0..255                          */
  53. typedef unsigned long ULONG;    /* 0..?                            */
  54. typedef unsigned short BITS;    /* 16 bit flags                    */
  55. typedef unsigned short UCOUNT;  /* 0..65535                        */
  56. typedef TEXT TBITS;             /* 8 bit flag                      */
  57.  
  58. /* common constants */
  59. #define YES 1
  60. #define NO 0
  61. #define TRUE YES
  62. #define FALSE NO
  63. #define FOREVER for(;;)
  64. #define NOTHING
  65. #define NIL (void *)0
  66.  
  67. /* machine types */
  68. #define BYTMASK 0377
  69. typedef unsigned char BYTE;
  70. typedef unsigned int WORD;
  71.  
  72. /* system parameters */
  73. #define STDIN 0
  74. #define STDOUT 1
  75. #define STDERR 2
  76. #ifndef EOF
  77. #define EOF (-1)
  78. #endif
  79.  
  80. /* macros */
  81. /*#define abs(x)      ((x) < 0 ? -(x) : (x))                   */
  82. /*#define isalpha(c)  (islower(c) || isupper(c))               */
  83. /*#define isdigit(c)  ('0' <= (c) && (c) <= '9')               */
  84. /*#define islower(c)  ('a' <= (c) && (c) <= 'z')               */
  85. /*#define isupper(c)  ('A' <= (c) && (c) <= 'Z')               */
  86. /*#define iswhite(c)  ((c) <= ' ' || 0177 <= (c))              */
  87. /*#define max(x, y)   (((x) < (y)) ? (y) : (x))                */
  88. /*#define min(x, y)   (((x) < (y)) ? (x) : (y))                */
  89. /*#define tolower(c)  (isupper(c) ? ((c) + ('a' - 'A')) : (c)) */
  90. /*#define toupper(c)  (islower(c) ? ((c) - ('a' - 'A')) : (c)) */
  91.  
  92. /* compiler mode */
  93. #ifdef PASCAL
  94.  
  95. #ifndef __COMPACT__
  96. #error Modules called from Turbo Pascal MUST use COMPACT model
  97. #endif
  98.  
  99. /* Pascal uses a 6 byte format for "real" numbers */
  100. typedef struct
  101.     {
  102.     BYTE real_byte[6];
  103.     } PASCAL_REAL;
  104.  
  105. #endif
  106.